An Automated Assistant is software which is designed to converse with a user about one or several domains of knowledge. Previous technology, like SIRI or Alexa, the command/control systems from Apple Computer and Amazon respectively, often fail to provide the system or answer which the user was looking for. This is due at least in part because to dialogue systems handling a narrow domain. This problem becomes even more severe in a conversational system, which must understand context in the dialog, as well as information from one or many sources. Current systems such as the “semantic web”, which attempts to provide semantic annotation to web pages (a simpler task than conversational transactions) have failed to satisfy the requirements of users: “Some of the challenges for the Semantic Web include vastness, vagueness, uncertainty, inconsistency, and deceit. Automated reasoning systems will have to deal with all of these issues to deliver on the promise of the Semantic Web.”
Semantic analysis techniques of past systems appear to depend on bag-of-words classifiers trained on utterances of “in-domain” vs “out-of-domain” interactions. This two-way (or multi-way, for use in multi-domain systems) approach is defective in at least three ways. First, it ignores the dialog state of an interaction. Second, it does not allow re-analysis of the state of some phrase or word during the conversation. Third, it does not take into account whether the system needs to understand the phrases in the utterance. For at least these reasons, it's difficult to determine when subject matter of an utterance is out of the known domain for an automated assistant.